/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.isd.seguridad.web;
import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import com.isd.global.util.JsfUtil;
import com.isd.seguridad.dao.UsuarioDAO;


import com.isd.seguridad.modelo.Usuario;



/**
 *
 * @author ctrosch
 */
@ManagedBean (name="usuarioBean")
@SessionScoped
public class UsuarioBean implements Serializable {
    
    @EJB private UsuarioDAO usuarioDAO;   


    private Usuario usuario;
    private List<Usuario> listaUsuarios;       
    //private HtmlDataTable tablaUsuario  = null;
    

    int  scrollerPage = 10;

    /** Creates a new instance of UsuarioMB */
    public UsuarioBean() {
        usuario    = new Usuario();        
       
        scrollerPage = 10;
    }
  

    
    
    public Map<String,String> getItemsTipoUsuario(){

        Map<String,String> lista = new LinkedHashMap<String, String>();
        lista.put("Seleccionar", "Seleccionar");
        /**
        lista.put(Tipo.Administrador.name(), Tipo.Administrador.name());
        lista.put(Tipo.Usuario.name(), Tipo.Usuario.name());
        lista.put(Tipo.Cliente_Standar.name(), Tipo.Cliente_Standar.name());
        lista.put(Tipo.Cliente_Prefer.name(), Tipo.Cliente_Prefer.name());
        */
        return lista;
    }

 

    public String verLista() {
        reset(true);
        return "usuario_lista";
    }

    public String verCrear() {
        try {
            reset(true);           
            usuario = new Usuario();
            return "usuario_crear";
        } catch (Exception ex) {
            JsfUtil.addErrorMessage(ex.getMessage());
            return null;
        }
    }

    public String verEditar() {
        usuario = getUsuarioSeleccionado();        
        return "usuario_editar";
    }

    public String crear() {
        try {
            usuarioDAO.crear(usuario);
            JsfUtil.addInfoMessage("El usuario ha sido creado correctamente");
        } catch (Exception e) {
            JsfUtil.addErrorMessage("No se puede crear - Error de persistencia");
            return null;
        }
        return verLista();
    }

    public String editar() {
        try {
            usuarioDAO.editar(usuario);
            JsfUtil.addInfoMessage("El Usuario se actualizó correctamente");
        
        } catch (Exception e) {
            JsfUtil.addErrorMessage("No se puede editar - Error de persistencia");
            return null;
        }
        return verLista();
    }

    public String eliminar() {
        try {
            usuario = getUsuarioSeleccionado();
            usuarioDAO.eliminar(usuario);
            JsfUtil.addInfoMessage("El usuario se elimino correctamente");
        
        } catch (Exception e) {
            JsfUtil.addErrorMessage("No se puede eliminar - Error de persistencia");
            return null;
        }
        return verLista();
    }

    public List<Usuario> getListaUsuarios() {
       
        return listaUsuarios;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public void setListaUsuarios(List<Usuario> listaUsuarios) {
        this.listaUsuarios = listaUsuarios;
    }

  

    public Usuario getUsuarioSeleccionado(){

        return (Usuario) new Usuario(); //this.tablaUsuario.getRowData();
    } 
    
    public String next() {
        reset(false);
       
        return "usuario_lista";
    }

    public String prev() {
        reset(false);
        
        return "usuario_lista";
    }

    private void reset(boolean resetFirstItem) {
        usuario = null;
        listaUsuarios = null;
        
        if (resetFirstItem) {
        
        }
    }    
}
